#ifndef _LISTCNC_H_
#define _LISTCNC_H_

#ifdef __cplusplus
extern "C"{
#endif

#ifdef LISTCNC_API_EXPORTS
#define LISTCNC_API	__declspec(dllexport)
#else
#define LISTCNC_API	__declspec(dllexport)
#endif

#define LISTCNC_OK			0
#define LISTCNC_FULL		1
#define LISTCNC_EMPTY		2

typedef void*   pLIST;

LISTCNC_API pLIST Listcnc_Create(int nodesize, int nodenum);
LISTCNC_API int Listcnc_Push(void *Pdata, pLIST Plist);
LISTCNC_API int Listcnc_Pop(void *Pdata, pLIST Plist);
LISTCNC_API int Listcnc_Release(pLIST Plist);
LISTCNC_API int Listcnc_GetHeadNode(pLIST Plist);
LISTCNC_API int Listcnc_GetForward(pLIST Plist, int id);
LISTCNC_API int Listcnc_GetBackward(pLIST Plist, int id);
LISTCNC_API int Listcnc_GetEndNode(pLIST Plist);
LISTCNC_API int Listcnc_GetNodeNum(pLIST Plist);
LISTCNC_API int Listcnc_GetValidNodeNum(pLIST Plist);
LISTCNC_API void* Listcnc_GetNodeDataPtr(pLIST Plist, int id);















#ifdef __cplusplus
}
#endif


#endif